<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    var arr = [1, 2, 3];
    var newArr = [];
    // newArr = arr.map(function(item,index,arr){
    //   return item*2;
    // });
    // console.log(newArr);
    
    Array.prototype.myMap = function (fn) {
      if (!Array.isArray(this)) {
        throw new TypeError('Error');
      }
      var newArr = [];
      for (var i = 0; i < this.length; i++) {
        newArr.push(fn(this[i], i, this));
      }
      return newArr;
    }
    
    newArr = arr.myMap(function (item, index) {
      return item * 2;
    });
    console.log(newArr);

  </script>
</body>

</html>